﻿using System;
using System.Collections.Generic;
using System.Text;
using Castle.ActiveRecord;
using Atendex.Dominio;
using Atendex.Dominio.Interfaces;
namespace Atendex.Dominio.ActiveRecord
{
    [ActiveRecord("solicitante")]
    [Serializable]
    public class SolicitanteAR : ActiveRecordBase<SolicitanteAR>, ISolicitante
    {
        private SolicitanteAR() { }
        /// <summary>
        /// Constrói um requerente.
        /// </summary>
        /// <param name="nome">nome</param>
        /// <param name="meioContato">o meio de contato do requerente</param>
        internal SolicitanteAR(string nome, IMeio meioContato)
        {
            Nome = nome;
            MeioContato = meioContato;
        }

        [BelongsTo(Type = typeof(AtendimentoAR), Cascade = CascadeEnum.All)]
        public IOrdemServico Solicitacao { get; set; }

        [BelongsTo(Type=typeof(MeioAR))]
        public IMeio MeioContato { get; set; }

        [PrimaryKey]
        public int Id { get; set; }
        [Property]
        public string Nome { get; set; }
        [Property]
        public string Email { get; set; }
        [BelongsTo(Type = typeof(TipoSolicitanteAR))]
        public ITipoSolicitante Tipo { get; set; }
        [Property]
        public string Telefone { get; set; }
        [Property]
        public string CursoInteresse { get; set; }
        [Property]
        public string EmailContato { get; set; }
        [Property]
        public string Empresa { get; set; }
    }
}
